Crontab - correr scripts em php automaticamente em sistemas Linux



:. Muitos programadores gostam da linguagem de programação php pela sua simplicidade e facilidade de produzir aplicações web. É bastante mais simples que o PERL ou mesmo o C. Vamos, neste artigo, ver como podemos correr scripts php inscritos no crontab (tabe .:



Muitos programadores gostam da linguagem de programação php pela sua simplicidade e facilidade de produzir aplicações web. É bastante mais simples que o PERL ou mesmo que o C. Vamos, neste artigo, ver como podemos correr scripts php inscritos no crontab (tabela de tarefas agendadas) em sistemas Linux.

O sistema cron está normalmente disponível em todos os sistemas Unix e Linux. se não pode acessá-lo, entre em contato com o administrador do servidor.

Sintaxe do comando para uma tarefa agendada:

mm hh dd MM ss script

onde

mm = minuto(0-59)

hh = hora(0-23)

dd = dia(1-31)

MM = mes(1-12)

ss = dia_da_semana(0-6) (0->domingo; 6->sábado)

script = comando a ser executado.

Nota 1: Em qualquer posição pode-se usar o * (asterisco) para se referir a todos (ou seja todos os dias ou horas ou semanas, ou meses, etc).

Nota 2: Pode-se utilizar intervalos nesses campos. O caracter para intervalo é o - (hifen).

Nota 3: Pode-se utilizar lista de valores nesses campos. O caracter para a lista é a , (vírgula).

Exemplos:

Vamos então abordar as diversas formas que temos ao dispor para lançar um programa automaticamente a uma hora e dia específico:

Em primeiro lugar é necessário saber como foi instalado o php. Se foi instalado como “CGI” ou “an Apache”. Para verificar isso, basta criar um ficheiro com a extensão php (info.php) com a seguinte, e única, instrução: “”. Fazer o upload deste ficheiro (info.php) para o seu site e utilizar um browser para o correr. O resultado que vai aparecer é a configuração do php no servidor, pelo que é só necessário verificar o valor da chave “Server API”.

Se o php foi compilado como CGI:

* * * * * php /caminho para o ficheiro/ver.php >/dev/null

Ou para ser mais específico:

* * * * * php /home/xxxx/public_html/dir1/ver.php >/dev/null

A opção “>/dev/null” serve para direcionar o output para um arquivo nulo.

No caso de querermos redirecionar o output para um ficheiro, fazemos: 

* * * * * php /home/xxxx/public_html/dir1/ver.php > nome_ficeiro.php


Se o php foi compilado como módulo apache:

Neste caso é necessária uma abordagem um pouco diferente. Vamos utilizar o programa “Lynx” que é um navegador pequeno, geralmente disponível em Unix e Linux que nos vai permitir correr scripts php.

Assim temos o commando;

* * * * * lynx http://www.meusite.com/ver.php

Para ambas as instalações do php, podemos ainda utilizar a biblioteca cURL:

cURL é uma ferramenta de linha de comando para transferir dados com sintaxe URL. Além de suportar muitos protocolos, consegue também tratar certificados digitais, cookies, proxies e autenticação (incluindo NTLM, Basic, Digest, Negotiate, Kerberos...). Este pacote vem incorporado na maioria das distribuições Linux, e em caso contrário pode ser encontrado na internet de forma gratuíta.

Neste caso temos o comando:

curl -s -o /dev/null http://www.meusite.com/dir_1/ver.php.php

No caso de querermos correr um script que se encontre numa pasta protegida do servidor, temos de passar o usuário e a password (do diretório) como parâmetros. 

#curl -u username:password http://meu_site.com/dir_protegido/ver.php 

 

A gestão das tarefas tanto pode ser feita por ssh – linha de comandos- como  através do painel de controlo do alojamento  (melhor forma). 

Autor: Carlos Oliveira
Data: 2012-05-25


Contato: mail@artigosenoticias.com   |   SAPO MAIL   |   HOTMAIL  |   GMAIL